<?php
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
*/

include_once("Home_Recuperacion/Logica/MainImport.php");//Import de recuperacion
include_once("Respuesta/CentroApoyo.php");

class FachadaBD {

    // Para implementar el patron singleton.
    private static $instance;

    // Metodo que permite obtener la unica instancia de la clase.
    public static function getInstance() {

        //si no existe instancia de la clase se crea
        // si existe se retorna la instancia existente.
        if( self::$instance == null ) {
            self::$instance = new self();
        }

        return self::$instance;
    }

    // Privado se previene la creacion via new.
    private function __construct() {

    }

    // Para evitar la clonacion de este objeto.
    private function __clone() {
        throw new Exception('No se puede clonar');
    }

    public function __wakeup() {
        throw new Exception("No se puede deserializar una instancia de ". get_class($this) ." class.");
    }


    public function __sleep() {
        throw new Exception("No se puede serializar una instancia de ". get_class($this) ." class.");
    }

    //Conecta y selecciona la base de datos del proyecto.
    function conectarse() {

        // Conecta con la base de datos.
        $link = mysql_connect("localhost", "root", "") or die('Error conectando');

        // Selecciona la base de datos.
        //OJO CON ESTO: no puede llamarse link la variable (le puse ok)
        if(!($ok = mysql_select_db("usb", $link))) {
            echo "Error seleccionando la base de datos: " . $bd;
            exit();
        }

        return $link;
    }

    // Funcion para desconectarse de la base de datos.
    function desconectar($link) {
        mysql_close($link);
    }

    //Funciones Mitigacion////////////////////////////////////////////////////


    //Funciones Preparacion///////////////////////////////////////////////////

    // ***************************************************
    // FUNCION NUEVA PARA CONECTARSE con el usuario creado
    //
    // ***************************************************
    function ConectarseUsuario($username,$password) {

        $conexion=mysql_connect("127.0.0.1",$username,$password)
                or die ('<img src="images/error.jpg" alt="hubo un error" /><br>
					Lo siento ha ocurrido un error, por favor verifique que el password introducido es v�lido');

        return $conexion;
    }

    //Funciones Usadas para el FORO ----COMIENZO
    //------------
    function InfoForo($foro) {
        $getthreads="SELECT * from info_foro where parentid='0' AND foro='$foro' order by lastrepliedto DESC";
        $getthreads2=mysql_query($getthreads) or die("No se pudieron conseguir threads");
        return $getthreads2;
    }

    function MensajesForo($id) {
        $gettopic="SELECT * from info_foro where postid='$id'";
        $gettopic2=mysql_query($gettopic) or die("No se pudo conseguir el tema");
        return $gettopic2;
    }

    function HijosMensaje($id) {
        $getreplies="Select * from info_foro where parentid='$id' order by postid ASC"; //getting replies
        $getreplies2=mysql_query($getreplies) or die("No se pudieron conseguir respuestas");
        return $getreplies2;
    }

    function Foros() {
        $getthreads="SELECT * from foros order by nombre DESC";
        $getthreads2=mysql_query($getthreads) or die("No se pudieron conseguir foros");
        return $getthreads2;
    }

    function CrearForo($name) {

        $name=strip_tags($name);

        $insertpost="INSERT INTO foros(nombre) values('$name')";

        mysql_query($insertpost) or die("<center>Disculpe ya existe un foro con el mismo nombre</center>");
    }

    function AgregarPost($subject,$name,$foro,$yourpost) {

        $thedate=date("U"); //get unix timestamp
        $displaytime=date("F j, Y, g:i a");
        //we now strip HTML injections
        $subject=strip_tags($subject);
        $name=strip_tags($name);
        $foro=strip_tags($foro);
        $yourpost=strip_tags($yourpost);
        $insertpost="INSERT INTO info_foro(author,title,foro,post,showtime,realtime,lastposter) values('$name','$subject','$foro','$yourpost','$displaytime','$thedate','$name')";
        mysql_query($insertpost) or die("El tema ya exites, por favor selecciona otro t�tulo"); //insert post
        print "Mensaje publicado, regresar al <A href='foro_index.php?foro=$foro'>Foro</a>.";
    }

    function AgregarRespuesta($subject,$name,$yourpost,$id) {
        $thedate=date("U"); //get unix timestamp

        $displaytime=date("F j, Y, g:i a");

        //we now strip HTML injections

        //$subject=strip_tags($subject);
        $subject="";
        $name=strip_tags($name);

        $yourpost=strip_tags($yourpost);

        $insertpost="INSERT INTO info_foro(author,title,post,showtime,realtime,lastposter,parentid) values('$name','$subject','$yourpost','$displaytime','$thedate','$name','$id')";

        mysql_query($insertpost) or die("No se pudo insertar el post"); //insert post

        $updatepost="Update info_foro set numreplies=numreplies+'1', lastposter='$name',showtime='$displaytime', lastrepliedto='$thedate' where postid='$id'";

        mysql_query($updatepost) or die("No se pudo actualizar el post");

        print "Mensaje publicado, regresar al <A href='message.php?id=$id'>mensaje</a>.";
    }

    function eliminarTema($idpost) {
        //$insertpost="INSERT INTO info_foro(author,title,foro,post,showtime,realtime,lastposter) values('$name','$subject','$foro','$yourpost','$displaytime','$thedate','$name')";
        $elimtem="DELETE FROM info_foro WHERE (postid='$idpost' or parentid='$idpost')";
        mysql_query($elimtem) or die("No se puede borrar tema"); //insert post
    }
    //Funciones Usadas para el FORO ---- FIN
    //------------

    function ChequearUsuario($username) {

        $checkuser = mysql_query("SELECT username FROM usuarios WHERE username='$username'");
        $username_exist = mysql_num_rows($checkuser);
        return $username_exist;
    }


    function UserValidationCheck($username) {

        $result = mysql_query('SELECT username FROM usuarios WHERE username=\''.strtolower(htmlentities($username, ENT_QUOTES)).'\'');
        $row = mysql_fetch_array($result);
        return $row;
    }

	function ConsultarPermisos($username){

		$lista = array();
        $query = "SELECT nombre FROM uidgid WHERE id='$username'" ;
        $res = mysql_query($query)
			or die('Error al consultar la Base de Datos.');

        $i=1;

        while($aux = mysql_fetch_array($res)) {

            $lista[$i] = $aux;
            $i++;
        }

        return $lista;
    }


    function ChequearEMail($email) {

        $checkemail = mysql_query("SELECT email FROM usuarios WHERE email='$email'");
        $email_exist = mysql_num_rows($checkemail);
        return $email_exist;
    }

    function Insertar_Usuario($nombre,$apellido,$email,$username,$password,$informacion,$voluntario,$atributos) {

        $query = 'INSERT INTO usuarios (nombre,apellido,email,username,informacion,voluntario,atributos,fecha)
                VALUES (\''.$nombre.'\',\''.$apellido.'\',\''.$email.'\',\''.$username.'\',\''.$informacion.'\'
                ,\''.$voluntario.'\',\''.$atributos.'\',\''.date("Y-m-d").'\')';

        mysql_query($query)
                or die('Error en la Insercion del Usuario. '.mysql_error());
    }

    function Mostrar_Usuario($user) {

        $result = mysql_query('SELECT * FROM usuarios WHERE username=\''.$user.'\'');
        $row = mysql_fetch_array($result);
        return $row;
    }

    function Mostrar_Usuario_ID($username) {

        $result = mysql_query('SELECT id FROM usuarios WHERE username=\''.$username.'\'');
        $row = mysql_fetch_array($result);
        return $row;
    }

		/***********************************************************
	 *
	 * Funcion que Permite Saber si un Usuario es Administrador
	 *
	 ***********************************************************/


	function Mostrar_Usuarios(){

			$lista = array();
			$query = "select * from usuarios";
			$res = mysql_query($query)
			or die('Error al consultar la Base de Datos.');
			$i=1;
			while($aux = mysql_fetch_array($res)) {

				$lista[$i] = $aux;
				$i++;
			}
			return $lista;
	}

		function Mostrar_Usuarios_keyword($keyword){

			$lista = array();
			$query = "select * from usuarios where username LIKE '$keyword'";
			$res = mysql_query($query)
			or die('Error al consultar la Base de Datos.');
			$i=1;
			while($aux = mysql_fetch_array($res)) {

				$lista[$i] = $aux;
				$i++;
			}
			return $lista;
	}
	
	/******************************************
	 * 
	 * Funciones de Administrador
	 * 
	 *****************************************/
	
	 function Mostrar_Grupos_Perte($UserName){

        

            $lista = array();

            $query = "select nombre from uIDgID where id='$UserName'";

            $res = mysql_query($query)

            or die('Error al consultar la Base de Datos.');

            $i=1;

            while($aux = mysql_fetch_array($res)) {

                

                $lista[$i] = $aux;

                $i++;

            }

            return $lista;

    }

    

    function Insertar_Usuario_Grupo($UserName,$Grupo){

        
		$query = 'Update uIDgID set nombre = \''.$Grupo.'\' where id = \''.$UserName.'\';';

        mysql_query($query)

                or die('El Grupo esta mal escrito. Error. '.mysql_error());

        

    }

    

    function Eliminar_Usuario_Grupo($UserName,$Grupo){

        

        $query = 'Update uIDgID set nombre = \'Default\' where id = \''.$UserName.'\';';

        mysql_query($query)

                or die('El Grupo esta mal escrito. Error. '.mysql_error());

        

    } 
	
	
	
	

    function Editar_Usuario($nombre,$apellido,$email,$username,$password,$informacion,$voluntario,$atributos) {
        $passencriptado=md5($password);
        $query = "UPDATE usuarios SET Nombre='$nombre', Apellido='$apellido', email='$email',
					informacion='$informacion', voluntario='$voluntario', atributos='$atributos' WHERE username='$username'";

        mysql_query($query)
                or die("Problemas con la Modificacion".mysql_error());

        $query = "SET PASSWORD = PASSWORD('newpass')";

        mysql_query($query)
                or die("Problemas con la Modificacion".mysql_error());
    }

	function Eliminar_Usuario($UserID) {

			mysql_query("delete from usuarios where username='$UserID'")
					or die("Problemas en la conexion a la base de datos".mysql_error());

			mysql_query("delete from uidgid where id='$UserID'")
					or die("Problemas en la conexion a la base de datos".mysql_error());
	}

    //Hagan caso omiso a las siguientes Funciones (por Ahora)
    /*function Insertar_Grupo($GroupID, $Nombre) {

			mysql_query("insert into Grupo(GID,Nombre,Privilegio) values ('$GroupID','$Nombre',0)")
				or die("Problemas en el insert".mysql_error());
	}

	function Insertar_Privilegio($PrivilegioID, $Nombre) {

			mysql_query("insert into Privilegio(PID, Nombre) values ('$PrivilegioID','$Nombre')")
				or die("Problemas en el insert".mysql_error());
	}

	function Eliminar_Grupo($GroupID) {

			mysql_query("delete from Grupo where GID=$GroupID")
					or die("Problemas en la conexion a la base de datos".mysql_error());
	}

	function Eliminar_Usuario($UserID) {

			mysql_query("delete from usuarios where username='$UserID'")
					or die("Problemas en la conexion a la base de datos".mysql_error());
	}

	function Eliminar_Privilegio($PrivilegioID) {

			mysql_query("delete from Privilegio where PID=$PrivilegioID")
					or die("Problemas en la conexion a la base de datos".mysql_error());
	}*/

    /******************************************************************
	 *
	 * Funciones ACTUALES EN USO
	 *
	 * *************************************************************/

    //........... Funciones modificadas con la clase Usuario .......

    function Insertar_Usuario2($emp) {

        $gd='Default';

			$query = 'INSERT INTO usuarios (nombre,apellido,email,username,informacion,voluntario,atributos,fecha,telefono)
                VALUES (\''.$emp->nombre.'\',\''.$emp->apellido.'\',\''.$emp->email.'\',\''.$emp->username.'\',\''.$emp->informacion.'\'
                ,\''.$emp->voluntario.'\',\''.$emp->atributos.'\',\''.date("Y-m-d").'\',\''.$emp->telefono.'\')';

			mysql_query($query)
			or die('Error en la Insercion del Usuario. '.mysql_error());

			$query2 = 'INSERT INTO uIDgID (id,nombre)
                VALUES (\''.$emp->username.'\',\''.$gd.'\')';

			mysql_query($query2)
			or die('Error en la Insercion del Usuario con su Grupo. '.mysql_error());

    }

		/***********************************************************
	 *
	 * Funcion que Permite Saber si un Usuario es Administrador
	 *
	 ***********************************************************/

	function EsAdmin($user){
			$result = mysql_query('SELECT username FROM usuarios WHERE username=\''.$user.'\'');
			$row = mysql_fetch_array($result);
			$query=mysql_query("SELECT * FROM uIDgID WHERE id='$row[username]' AND nombre='root'");
			$esAdmin=mysql_num_rows($query);
			return $esAdmin;

	}



    /********************************************************
	 *
	 * Funcion Especial para el Administrador para Cambiar el Grupo
	 * de un Usuario (no se si el tambien puede Modificar las otras cosas
	 * o seria fallo a la Privacidad del Usuario) Revisen
	 *
	 * ******************************************************/

    function Editar_Usuario_Admin($emp) {

        $passencriptado=md5($emp->password);
        $query = "UPDATE usuarios SET Nombre='$emp->nombre', Apellido='$emp->apellido', email='$emp->email',
							informacion='$emp->informacion', voluntario='$emp->voluntario', atributos='$emp->atributos',
							grupo='$emp->Grupo' WHERE username='$emp->username'";

        mysql_query($query)
                or die("Problemas con la Modificacion".mysql_error());

    }



    function Editar_Usuario2($emp) {
        $passencriptado=md5($emp->password);
        $query = "UPDATE usuarios SET Nombre='$emp->nombre', Apellido='$emp->apellido', email='$emp->email',
							informacion='$emp->informacion', voluntario='$emp->voluntario', atributos='$emp->atributos', telefono='$emp->telefono' WHERE username='$emp->username'";

        mysql_query($query)
                or die("Problemas con la Modificacion".mysql_error());

        if($emp->password!=NULL) {
            $query = "SET PASSWORD FOR '$emp->username' = PASSWORD('$emp->password')";

            mysql_query($query)
                    or die("Problemas con la Modificacion".mysql_error());
        }
    }


    /***********************************************************/

    // ***************************************************
    // FUNCION NUEVA CON EL CREATE USER
    // ***************************************************
    function Crear_Usuario($username,$password) {

        $query = 'CREATE USER \''.$username.'\' IDENTIFIED BY \''.$password.'\'';

        mysql_query($query)
                or die('Error en la Insercion del Usuario. '.mysql_error());
    }

    function Eliminar_Cuenta($username) {

        //$query = "DROP USER '".$username."'@'localhost';";
        $query = "DROP USER '".$username."'";
        mysql_query($query)
                or die('Error al eliminar la cuenta de la Base de Datos'.mysql_error());
    }

    // ***************************************************
    // FUNCION NUEVA para darle permisos al usuario creado
    // ***************************************************
    function Permisos($username,$password) {

        $query = "GRANT SELECT, INSERT, DELETE, UPDATE, DROP ON *.* TO '".$username."'@'%' IDENTIFIED BY '".$password."' WITH GRANT OPTION";
        //$query = "GRANT ALL PRIVILEGES ON *.* TO '".$username."'@'localhost' IDENTIFIED BY '".$password."' WITH GRANT OPTION";

        mysql_query($query)
                or die('Error en la Insercion del Usuario. '.mysql_error());
    }

    /******************************************************************
	 *
	 * Funciones que usa Josmary para probar lo de grupos
	 *
	 * *************************************************************/

    //........... Funciones relacionadas con grupos .......

    function CrearGrupo($grupo) {

        $query = 'INSERT INTO grupos (nombre,descripcion)
                VALUES (\''.$grupo->nombre.'\',\''.$grupo->descripcion.'\')';

        mysql_query($query)
                or die('Error en la Insercion del Grupo. '.mysql_error());

    }
    function Grupos() {
        $getthreads="SELECT * from grupos order by nombre DESC";
        $getthreads2=mysql_query($getthreads) or die("No se pudieron conseguir grupos");
        return $getthreads2;
    }
	
	function listaGrupos() {
        $lista = array();
			$query = "select * from grupos";
			$res = mysql_query($query)
			or die('Error al consultar la Base de Datos.');
			$i=1;
			while($aux = mysql_fetch_array($res)) {

				$lista[$i] = $aux;
				$i++;
			}
			return $lista;
    }

    function eliminarGrupo($name) {

        $elimtem="DELETE FROM grupos WHERE (nombre='$name')";
        mysql_query($elimtem) or die("No se puede eliminar Grupo");
    }

    function Mostrar_Grupo($grupo) {

        $result = mysql_query('SELECT * FROM grupos WHERE nombre=\''.$grupo.'\'');
        $row = mysql_fetch_array($result);
        return $row;
    }

    function Editar_Grupo($nomb,$desc) {

        $query = "UPDATE grupos SET nombre='$nomb', descripcion='$desc' WHERE nombre='$nomb'";
        mysql_query($query)
                or die("Problemas con la Modificacion".mysql_error());

    }

    // ----------------------------------------------------
    // Funciones relacionadas con Privilegios


    function Insertar_Privilegio($priv) {

        //CAMBIE ESTO PARA AGREGAR LO DE GRUPO
        //$emp='Default';
        $query = 'INSERT INTO privilegio (nombreTabla,accion)
                VALUES (\''.$priv->nombreTabla.'\',\''.$priv->accion.'\')';

        mysql_query($query)
                or die('Error en la Insercion del Usuario. '.mysql_error());

    }

    function Eliminar_Privilegio($priv) {

        $query = "DELETE FROM privilegio where id = '$priv'";

        mysql_query($query)
                or die('Error al eliminar el Privilegio. '.mysql_error());

    }

    function Lista_Tablas() {

        $lista = array();
        $query = "show tables from usb";
        $res = mysql_query($query)
                or die('Error al consultar las tablas de la Base de Datos.');

        while($aux = mysql_fetch_row($res)) {

            $lista[] = $aux[0];
        }
        return $lista;
    }

    function Privilegios() {
        $getthreads="SELECT * from privilegio order by id DESC";
        $getthreads2=mysql_query($getthreads) or die("No se pudieron conseguir Privilegios");
        return $getthreads2;
    }

    function Mostrar_Privilegio($id) {

        $result = mysql_query('SELECT * FROM privilegio WHERE id=\''.$id.'\'');
        $row = mysql_fetch_array($result);
        return $row;
    }


    //Funciones Respuesta/////////////////////////////////////////////////////

    //Funciones Respuesta/////////////////////////////////////////////////////

    /*
     * Inserta una persona afectada.
    */
    function insertarPersonaAfectada($persona) {

        // Construye el query para insertar una persona afectada.
        $query = "INSERT INTO persona_afectada(descripcion, nombre,
                                               fecha_desaparicion, ci, ubicado,
                                               contacto, numero, dir_foto)
                  VALUES ('$persona->descripcion', '$persona->nombre',
                          '$persona->fechaDesaparicion', '$persona->ci',
                          '$persona->ubicado', '$persona->contacto',
                          '$persona->telefono', '$persona->foto');";

        // Se conecta a una base de datos.
        $conexion = $this->conectarse();

        // Hace la consulta.
        if (!mysql_query($query)) {
            return false;
        }

        // Se desconecta.
        $this->desconectar($conexion);

        return true;
    }


    // Retorna una lista de personas afectadas.
    function consultarPersonaAfectada(){
        $result = array();
        // Construye el query.
        $query = "SELECT * FROM persona_afectada;";

        // Se conecta a una base de datos.
        $conexion = $this->conectarse();
        // Selecciona una base de datos.
        //$conexion = $this->seleccionarBD($conexion, "Proyecto");

        // Hace el query y lo guarda.
        if(!$query = @ mysql_query($query,$conexion))
                return false;

        // Saca las tuplas del resultado del query anterior.
        for($i=0; $row = mysql_fetch_array($query); $i++){

            $result[$i] = $row;
        };
        /*/ Hace la consulta.
        if (!$result = @ mysql_db_query("Proyecto", $query)) {
            return false;
        }*/
        //$result = $this->consultarPersonaAf($query, $conexion);
        $this->desconectar($conexion);

        return $result;
    }

    // Retorna una lista de personas afectadas.
    function consultarPersonaAfectadaF($fecha){
        $result = array();
        // Construye el query.
        $query = "SELECT * FROM persona_afectada WHERE fecha_desaparicion='$fecha';";

        // Se conecta a una base de datos.
        $conexion = $this->conectarse();
        // Selecciona una base de datos.
        //$conexion = $this->seleccionarBD($conexion, "Proyecto");

        // Hace el query y lo guarda.
        if(!$query = @ mysql_query($query,$conexion))
                return false;

        // Saca las tuplas del resultado del query anterior.
        for($i=0; $row = mysql_fetch_array($query); $i++){

            $result[$i] = $row;
        };
        /*/ Hace la consulta.
        if (!$result = @ mysql_db_query("Proyecto", $query)) {
            return false;
        }*/
        //$result = $this->consultarPersonaAf($query, $conexion);
        $this->desconectar($conexion);

        return $result;
    }

// Retorna una lista de personas afectadas.
    function consultarPersonaAfectadaEx($id){
        $result = array();
        // Construye el query.
        $query = "SELECT * FROM persona_afectada WHERE id='$id';";

        // Se conecta a una base de datos.
        $conexion = $this->conectarse();
        // Selecciona una base de datos.
        //$conexion = $this->seleccionarBD($conexion, "Proyecto");

        // Hace el query y lo guarda.
        if(!$query = @ mysql_query($query,$conexion))
                return false;

        // Saca las tuplas del resultado del query anterior.
        for($i=0; $row = mysql_fetch_array($query); $i++){

            $result[$i] = $row;
        };
        /*/ Hace la consulta.
        if (!$result = @ mysql_db_query("Proyecto", $query)) {
            return false;
        }*/
        //$result = $this->consultarPersonaAf($query, $conexion);
        $this->desconectar($conexion);

        return $result;
    }

    function eliminarPersonaAfectada($persona){
        $consulta = "DELETE FROM persona_afectada WHERE id = '{$persona->getId()}'";

		$conexionBD = $this -> conectarse();

		$exito = $this -> insertar_o_eliminar($consulta,$conexionBD);

		$this -> desconectar($conexionBD);
		return $exito;




    }



    function insertar_o_eliminar($query,$link){

		if(!mysql_query($query,$link)){
			return false;
		}
		return true;
	}




    //Inserta Zona en Emergencia
    function insertarZona($zona){

        //Se elabora la consulta
        $query = "INSERT INTO zona_emergencia VALUES ('{$zona->getId()}','{$zona->getTipo()}', '{$zona->getFecha()}');";

       // Se conecta a una base de datos.
        $conexion = $this->conectarse();

         // Hace la consulta.
        if (!mysql_query($query)) {
            return false;
        }

                 ////Se ingresan los puntos en la tabla Coordenadas///

        //Se obtienen las coordenadas
        $packed = "{$zona->getCoordenadas()}";

        //Se separan las coordenadas por ;
        $data = split(";",$packed);

        //Se ingresa coordenada por coordenada en la tabla coordenadas
        for($i = 0; $i < count($data)-1; $i++) {
                 $dat = split(",",$data[$i]);

                 //Se elabora la consulta
                 $query = "INSERT INTO coordenadas VALUES('{$zona->getId()}',".$dat[0].",".$dat[1].",'{$i}')";

                 //Se hace la consulta en la base de datos.
                 if(!mysql_query($query)) {
                      echo "Error al insertar";
                 };

        }

       $this->desconectar($conexion);

    }


    //Elimina Zona en Emergencia
    function eliminarZona($id){

            //Se elabora la consulta
            $query = "DELETE FROM zona_emergencia WHERE nombre = '{$id}'";
            // Se conecta a una base de datos.
            $conexion = $this->conectarse();

            // Hace la consulta.
            if (!mysql_query($query)) {
                return false;
            }
            // Se desconecta.
            $this->desconectar($conexion);

            return true;
       }

    function consultarZonaEmergencia($tipo,$fecha){

            //Se hace la consulta
            $query = "SELECT * FROM zona_emergencia, coordenadas
                      WHERE tipo = '{$tipo}'
                           AND fecha ='{$fecha}'
                           AND nombre = nombre_zona
                           ORDER BY nombre,indice;";

            $result = array();

            //Se conecta con la base de datos
            $conexion = $this->conectarse();

            // Hace el query y lo guarda.
            if(!$query = @ mysql_query($query))
                 die("Error " . mysql_errno() . " : " . mysql_error());

            // Saca las tuplas del resultado del query anterior.
            for($i=0; ($row = mysql_fetch_array($query)); $i++){
                    $result[$i] = $row;
            }

            return $result;

     }

    function insertarCentroApoyo($centro){

        $query = "INSERT INTO centro_apoyo(nombre, tipo, desastre, capacidad, ubicacion, lat, lng,fecha)
                  VALUES ('{$centro->getNombre()}', '{$centro->getTipo()}',
                          '{$centro->getDesastre()}', '{$centro->getCapacidad()}',
                          '{$centro->getUbicacion()}', '{$centro->getLat()}',
                          '{$centro->getLen()}','{$centro->getFecha()}');";

        // Se conecta a una base de datos.
        $conexion = $this->conectarse();

        // Hace la consulta.
        if (!mysql_query($query)) {
            return false;
        }

        // Se desconecta.
        $this->desconectar($conexion);

        return true;
    }

   // Retorna una lista de centros de apoyo.
    function consultarCentrosApoyo(){
        $result = array();
        // Construye el query.
        $query = "SELECT * FROM centro_apoyo;";

        // Se conecta a una base de datos.
        $conexion = $this->conectarse();
        // Selecciona una base de datos.
        //$conexion = $this->seleccionarBD($conexion, "Proyecto");

        // Hace el query y lo guarda.
        if(!$query = @ mysql_query($query,$conexion))
                return false;

        // Saca las tuplas del resultado del query anterior.
        for($i=0; ($row = mysql_fetch_array($query)); $i++){

            $result[$i] = $row;
        };
        /*/ Hace la consulta.
        if (!$result = @ mysql_db_query("Proyecto", $query)) {
            return false;
        }*/
        //$result = $this->consultarPersonaAf($query, $conexion);
        $this->desconectar($conexion);

        return $result;
    }

    function eliminarCentroApoyo($centro){

        $query = "DELETE FROM centro_apoyo WHERE nombre = '{$centro->getNombre()}';";

        // Se conecta a una base de datos.
        $conexion = $this->conectarse();

        // Hace la consulta.
        if (!mysql_query($query)) {
            return false;
        }

        // Se desconecta.
        $this->desconectar($conexion);

        return true;

    }

    //Funciones Recuperacion//////////////////////////////////////////////////

    //DONACIONES

    public function obtenerSolicDon($edo, $tipo) {
        $lista = array();
        $sql = "SELECT * FROM donacion WHERE  tipo = '$tipo' AND estado = '$edo' AND ofrecida = 0 ORDER BY id ASC";

        $link = $this -> conectarse();

        $result = mysql_query($sql,$link);

        if ($result != null) {
            while( $fila = mysql_fetch_array ($result)) {
                $don = new donacion($fila['id'], $fila['descripcion'], $fila['ofrecida'], $fila['tipo'], $fila['cantidad'], $fila['id_usuario'], $fila['estado']);
                $lista[] = $don;
            }
        }

        $this -> desconectar($link);

        return $lista;
    }

    public function eliminarDon($id) {

        $link = $this -> conectarse();
        $sql = "DELETE FROM donacion WHERE id = '$id'";
        mysql_query($sql,$link);
        $this -> desconectar($link);
    }

    public function modificarDon($id, $cant) {
        $link = $this -> conectarse();
        $sql = "UPDATE donacion SET cantidad = '$cant' WHERE id = '$id'";
        mysql_query($sql,$link);
        $this -> desconectar($link);
    }

    public function insertarDon($datos) {

        $link = $this -> conectarse();

        $desc =	$datos -> obtenerDesc();
        $ofr = $datos -> obtenerOfrec();
        $tip = $datos -> obtenerTipo();
        $cant = $datos -> obtenerCant();
        $idUsuario = $datos -> obtenerIdUsuario();
        $edo = $datos -> obtenerEdo();


        $sql = "INSERT INTO donacion (descripcion, ofrecida, tipo, cantidad, id_usuario, estado) VALUES ('$desc', $ofr, '$tip', $cant, $idUsuario, '$edo')";
        if (!mysql_query($sql,$link)) echo mysql_error();

        $this -> desconectar($link);
    }

    public function obtenerOfrecDon($edo, $tipo) {

        $lista = array();
        $link = $this -> conectarse();
        $sql = "SELECT * FROM donacion WHERE  estado = '$edo' AND tipo = $tipo AND ofrecida = 1";

        $result = mysql_query($sql,$link);

        if ($result != null) {
            while( $fila = mysql_fetch_array ($result)) {
                $don = new donacion($fila['id'], $fila['descripcion'], $fila['ofrecida'], $fila['tipo'], $fila['cantidad'], $fila['id_usuario'], $fila['estado']);
                $lista[] = $don;
            }
        }

        $this -> desconectar($link);

        return $lista;
    }

    //VOLUNTARIO

    public function obtenerSolicVol($edo, $habi) {

        $link = $this -> conectarse();
        $sql = "SELECT * FROM voluntario WHERE  estado = '$edo' AND habilidad = '$habi' AND cantidad > 0 LIMIT 1";

        $aux = mysql_query($sql,$link);
        $fila = mysql_fetch_assoc($aux);

        $this -> desconectar($link);
        if ($fila) {
            $vol = new voluntario($fila['id'], $fila['habilidad'], $fila['ubicacion'], $fila['cantidad'], $fila['id_usuario'], $fila['estado']);
            return $vol;
        }

        return NULL;
    }

    public function eliminarVol($id) {

        $link = $this -> conectarse();
        $sql = "DELETE FROM voluntario WHERE id = $id";
        mysql_query($sql,$link);
        $this -> desconectar($link);
    }

    public function modificarVol($id, $cant) {

        $link = $this -> conectarse();
        $sql = "UPDATE voluntario SET cantidad = '$cant' WHERE id = '$id'";
        mysql_query($sql,$link);
        $this -> desconectar($link);
    }

    public function insertarVol($datos) {

        $link = $this -> conectarse();
        $habi =	$datos -> obtenerHabi();
        $ubic =	$datos -> obtenerUbic();
        $cant =	$datos -> obtenerCant();
        $idUsuario = $datos -> obtenerIdUsuario();
        $edo = $datos -> obtenerEdo();

        $sql = "INSERT INTO voluntario (habilidad, ubicacion, cantidad, id_usuario, estado) VALUES ('$habi', '$ubic', $cant, $idUsuario, '$edo')";
        mysql_query($sql,$link);
        $this -> desconectar($link);

    }

    public function obtenerOfrecVol($edo, $habi) {

        $lista = array();
        $link = $this -> conectarse();
        $sql = "SELECT * FROM voluntario WHERE  estado = '$edo' AND habilidad = '$habi' AND cantidad = 0";

        $result = mysql_query($sql,$link);

        if ($result != null) {
            while( $fila = mysql_fetch_array ($result)) {
                $vol = new voluntario($fila['id'], $fila['habilidad'], $fila['ubicacion'], $fila['cantidad'], $fila['id_usuario'], $fila['estado']);
                $lista[] = $vol;
            }
        }

        $this -> desconectar($link);

        return $lista;
    }

    public function obtenerDatosCentro($id) {

        $link = $this -> conectarse();
        $sql = "SELECT nombre, email, telefono FROM usuarios WHERE  id = $id";

        $aux2 = mysql_query($sql,$link);
        $aux = mysql_fetch_assoc($aux2);

        $datos = array(1 => $aux['nombre'], 2 => $aux['email'], 3 => $aux['telefono']);

        $this -> desconectar($link);

        return $datos;
    }

    public function obtenerUsuario($nombre) {

        $link = $this -> conectarse();
        $sql = "SELECT id FROM usuarios WHERE  username = '$nombre'";

        $aux2 = mysql_query($sql,$link);
        $aux = mysql_fetch_assoc($aux2);

        $id = $aux['id'];

        return $id;

    }

    public function obtenerAtributo($nombre) {

        $link = $this -> conectarse();
        $sql = "SELECT atributos FROM usuarios WHERE  username = '$nombre'";

        $aux2 = mysql_query($sql,$link);
        $aux = mysql_fetch_assoc($aux2);

        $atr = $aux['atributos'];

        return $atr;

    }


    // <editor-fold defaultstate="collapsed" desc="Recuperacion_Reporte">
    public function getEnteGub($ubicacion) {
        $link = $this->conectarse();
        $ente = null;

        try {

            $sql = "SELECT * From `ente_ayuda_en` JOIN `ente_gub` ON (`id` = `ente_gub_id`)  WHERE (\"$ubicacion\" = `estado`)";

            $result =  @mysql_query($sql,$link);

            $enteFech = mysql_fetch_array($result);

            $ente = new EnteGubernemental($enteFech["id"], $enteFech["estado"], $enteFech["correo"], $enteFech["nombre"]);

        } catch(Exception $e) {
            echo("Error al obtener entes gubernamentales: ".$e->getMessage());
        }
        $this->desconectar($link);

        return $ente;
    }

    public function getListaPalabras() {
        $link = $this->conectarse();

        $lista = null;

        try {

            $sql = "SELECT * From `palabra`";

            $result =  @mysql_query($sql,$link);

            $lista = array();

            while ($row = mysql_fetch_array($result)) {
                $lista[] = $row[0];
            }

        }catch(Exception $e) {
            echo("Error al obtener Lista de Palabras: ".$e->getMessage());
        }
        $this->desconectar($link);

        return $lista;
    }

    public function salvarEnte($nombre, $correo) {
        $link = $this->conectarse();
        try {

            $sql = "INSERT $nombre, $correo INTO `ente_gub` (id, nombre, correo)VALUES (null, $nombre, $correo)";

            @mysql_query($sql,$link);
        }catch(Exception $e) {
            echo("Error al salvar EnteGubernamental: ".$e->getMessage());
        }
        $this->desconectar($link);

    }

    public function salvarReporte($descripcion, $fecha, $ubicacion, $userId) {
        $link = $this->conectarse();

        try {

            $sql = "INSERT INTO `reporte` (`id`, `descripcion`, `fecha`, `estado`, `usuario`) VALUES (NULL, '$descripcion', '$fecha', '$ubicacion', '$userId')";

            @mysql_query($sql,$link);

        }catch(Exception $e) {
            echo("Error al salvar EnteGubernamental: ".$e->getMessage());
        }
        $this->desconectar($link);

    }

    public function getUser($nombre) {
        $link = $this->conectarse();
        $usuario=null;
        try {

            $sql = "SELECT * FROM  `usuario` WHERE  `nombre` =  \"$nombre\"";

            $result =  @mysql_query($sql,$link);

            $usuarioFetch = mysql_fetch_array($result);

            $usuario = new Usuario($usuarioFetch["id"], $usuarioFetch["nombre"], $usuarioFetch["telefono"], $usuarioFetch["correo"]);
        }catch(Exception $e) {
            echo("Error al salvar EnteGubernamental: ".$e->getMessage());
        }
        $this->desconectar($link);

        return $usuario;
    }

    public function getArrayEstados() {
        $link = $this->conectarse();
        echo "Coneccion:";
        var_dump($link);
        $ArrayEstado=array();
        try {

            $sql = "SELECT * FROM  `estado`";

            $result =  @mysql_query($sql,$link);

            echo $result;

            while ($estado = mysql_fetch_array($result)) {
                $ArrayEstado[] = $estado["nombre"];
            }

        }catch(Exception $e) {
            echo("Error al salvar EnteGubernamental: ".$e->getMessage());
        }
        echo "Coneccion: $link".(gettype($link));
        $this->desconectar($link);

        return $ArrayEstado;
    }
    // </editor-fold>

}
?>
